const API = require('../../../utils/api.js'); // 引入封装好的 API 方法
const pathUrl = require('../../../utils/common.js'); 
Page({
  data: {
    searchKeyword: '',       // 搜索关键词
    materialList: [],        // 材料列表数据
    page: 1,                 // 当前页码
    pageSize: 10,            // 每页数量
    isLoading: false,        // 是否正在加载
    hasMore: true,            // 是否有更多数据
    //弹出框数据
    showModal: false,
    editId:'',
    editName:'',
    editTitle: '',
    editType:'',
    inputValue: ''
  },

   onLoad: function() {
    //this.loadMaterials()
  },
  onShow:function(){
    this.loadMaterials()
  },

  // 加载材料数据
  loadMaterials: async function(resetPage = false) {
    let queryParam={keyWords:this.data.searchKeyword}
    let resultList = await API.materialInfoList(queryParam)
    this.setData({ 
     // isLoading: true,
      'materialList':resultList,
     })
  },

  // 搜索输入
  onSearchInput: function(e) {
    this.setData({
      searchKeyword: e.detail.value
    })
    this.loadMaterials();
  },

  // 执行搜索
  onSearch: function() {
    this.setData({
      page: 1,
      hasMore: true
    })
    this.loadMaterials()
  },

  // 日期选择
  onDateChange: function(e) {
    this.setData({
      currentDate: e.detail.value,
      page: 1,
      hasMore: true
    })
    this.loadMaterials()
  },

  // 滚动到底部加载更多
  onReachBottom: function() {
    if (!this.data.isLoading && this.data.hasMore) {
      this.setData({
        page: this.data.page + 1
      })
      this.loadMaterials()
    }
  },

  // 跳转到详情页
  navigateToDetail: function(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/material-detail/material-detail?id=${id}`
    })
  },
  // 格式化时间显示
  formatTime: function(time) {
    if (!time) return ''
    const date = new Date(time)
    return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`
  },
  handleAdd(){
    wx.navigateTo({
      url: '/pages/material/add/add'
    });
  },
  handleDownload(){
    console.log('11111')
  },
  clearSearch(){
    this.setData({
      'searchKeyword':''
    })
    this.loadMaterials();
  },
  handleInOut(e){
    this.setData({
      editTitle:e.currentTarget.dataset.type==1?'入库':'出库',
      editId:e.currentTarget.dataset.id,
      editName:e.currentTarget.dataset.name,
      editType:e.currentTarget.dataset.type,
      showModal: true,
      currentId: e.currentTarget.dataset.id,
    });
  },
  handleNameInput:function(e){
    this.setData({
      inputValue:e.detail.value
    })
  },
  // 取消按钮，隐藏弹窗
  hideModal: function() {
    this.setData({
      showModal: false
    });
  },
  confirmEdit: async function(){
    let param={type:this.data.editType,id:this.data.editId,count:this.data.inputValue}
    let result = await API.materialRecordSave(param);
    this.hideModal();
    this.loadMaterials()
  },
  handleDetails: async function(e){
    console.log('文件下载',e.currentTarget.dataset.id)
    const downloadTask = wx.downloadFile({
      url: pathUrl+'/wechat/download/materialRecord?id='+e.currentTarget.dataset.id, // 服务端接口地址
      success: (res) => {
        console.log('res=======',res)
        if (res.statusCode === 200) {
          console.log(res)
          // 下载成功，尝试打开文件
          wx.openDocument({
            filePath: res.tempFilePath, // 使用下载后的临时文件路径
            fileType: 'xlsx', // 指定文件类型为 PDF
            showMenu: true,//可以保存文件
            success: (openRes) => {
              console.log('PDF 文件已成功打开', openRes);
            },
            fail: (openErr) => {
              wx.showToast({
                title: '无法打开文件，请检查文件类型或安装支持的应用',
                icon: 'none',
                duration: 2000,
              });
            },
          });
        } else {
          wx.showToast({
            title: '下载文件失败',
            icon: 'none',
            duration: 2000,
          });
        }
      },
      fail: (err) => {
        wx.showToast({
          title: '文件下载失败',
          icon: 'none',
          duration: 2000,
        });
      },
    });
    console.log('文件下载结束=----')
  },
  //物料删除
  handleDelete: function(e) {
    let that = this;
   wx.showModal({
    title: '警告', // 对话框标题
    content: '您确认删除'+e.currentTarget.dataset.id+'吗？', // 对话框内容
    showCancel: true, // 是否显示取消按钮
    cancelText: '取消', // 取消按钮的文本
    confirmText: '确定', // 确定按钮的文本
    success: async function (res) {
      if (res.confirm) {
        let res = await API.materialInfoDelete(e.currentTarget.dataset.id)
        that.loadMaterials()
      } else if (res.cancel) {
        console.log('用户点击了“取消”按钮');
        // 在这里处理用户点击取消后的逻辑
      }
    }
  });
  },
})